package com.huidatech.mpgdemo.config;

import com.huidatech.mpgdemo.crawler_unit.task.*;
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Description:
 * @Author: Wangzz
 * @Version: 1.0.0
 * @CreateDate: Created in 2021/10/24 21:44
 * @UpdateDate: [dateFormat:YYYY-MM-DD][modifier][description]
 */
@Configuration
public class QuartzConfig {

//    //指定具体的定时任务类
//    @Bean
//    public JobDetail uploadTaskDetail(){
//        return JobBuilder.newJob(CrawlerForPriceTask.class)
//                .withIdentity("CrawlerForPriceTask")
//                .storeDurably().build();
//    }
//
//    //配置触发器
//    @Bean
//    public Trigger uploadTaskTrigger(){
//        // 设定触发执行的方式（执行的时机）
//        CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("*/5 * * * * ?");
//        // 返回任务触发器
//        return TriggerBuilder.newTrigger().forJob(uploadTaskDetail())
//                .withIdentity("CrawlerForPriceTask")
//                .withSchedule(scheduleBuilder)
//                .build();
//    }


	// 【🕷🕸】广东江门市新会区水果食品批发市场有限公司最新批发报价 https://price.21food.cn/market/580.html 至多爬取1页  【13点】
	@Bean
	public JobDetail executeCrawlerAt13AMTask() {
		return JobBuilder.newJob(AM13Task.class)
				.withIdentity("AM13Task")
				.storeDurably().build();
	}

	@Bean
	public Trigger executeCrawlerAt13AMTaskTrigger() {
		// 设定触发执行的方式（执行的时机）
		CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0 0 13 * * ? *");
		return TriggerBuilder.newTrigger().forJob(executeCrawlerAt13AMTask())
				.withIdentity("AM13Task")
				.withSchedule(cronScheduleBuilder)
				.build();
	}


	// 【🕷🕸】广东省广州市江南农副产品市场最新批发报价 https://price.21food.cn/market/746.html 至多爬取2页 【14点】
	@Bean
	public JobDetail executeCrawlerAt14AMTask() {
		return JobBuilder.newJob(AM14Task.class)
				.withIdentity("AM14Task")
				.storeDurably().build();
	}

	@Bean
	public Trigger executeCrawlerAt14AMTaskTrigger() {
		// 设定触发执行的方式（执行的时机）
		CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0 0 14 * * ? *");
		return TriggerBuilder.newTrigger().forJob(executeCrawlerAt14AMTask())
				.withIdentity("AM14Task")
				.withSchedule(cronScheduleBuilder)
				.build();
	}


	//  【🕷🕸】广东汕头农副产品批发中心最新批发报价 https://price.21food.cn/market/777.html 至少爬取3页 【15点】
	@Bean
	public JobDetail executeCrawlerAt15AMTask() {
		return JobBuilder.newJob(AM15Task.class)
				.withIdentity("AM15Task")
				.storeDurably().build();
	}

	@Bean
	public Trigger executeCrawlerAt15AMTaskTrigger() {
		// 设定触发执行的方式（执行的时机）
		CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0 52 16 * * ? *");
		return TriggerBuilder.newTrigger().forJob(executeCrawlerAt15AMTask())
				.withIdentity("AM15Task")
				.withSchedule(cronScheduleBuilder)
				.build();
	}


	//  【🕷🕸】广东江门市水产冻品副食批发市场最新批发报价 https://price.21food.cn/market/817.html 至多爬取2页 【16点】
	@Bean
	public JobDetail executeCrawlerAt16AMTask() {
		return JobBuilder.newJob(AM16Task.class)
				.withIdentity("AM16Task")
				.storeDurably().build();
	}

	@Bean
	public Trigger executeCrawlerAt16AMTaskTrigger() {
		// 设定触发执行的方式（执行的时机）
		CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0 0 16 * * ? *");
		return TriggerBuilder.newTrigger().forJob(executeCrawlerAt16AMTask())
				.withIdentity("AM16Task")
				.withSchedule(cronScheduleBuilder)
				.build();
	}


	//  【🕷🕸】佛山中南农产品交易中心最新批发报价 https://price.21food.cn/market/847.html 至多爬取1页 【17点】
	@Bean
	public JobDetail executeCrawlerAt17AMTask() {
		return JobBuilder.newJob(AM17Task.class)
				.withIdentity("AM17Task")
				.storeDurably().build();
	}

	@Bean
	public Trigger executeCrawlerAtElevenAndSevenTeenTaskTrigger() {
		// 设定触发执行的方式（执行的时机）
		CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0 0 17 * * ? *");
		return TriggerBuilder.newTrigger().forJob(executeCrawlerAt17AMTask())
				.withIdentity("AM17Task")
				.withSchedule(cronScheduleBuilder)
				.build();
	}

}
